#!/bin/bash
# 作者：聪
# 快速生成Docsify的侧边栏
# 遍历当前目录下的所有文件夹中的文件，将其输出到其文件夹的_sidebar.md文件中

# 进入脚本所在目录
CURRENT_DIR=$(cd $(dirname $0); pwd)/$1
cd $CURRENT_DIR

# ---- 定义方法 ----
# 将笔记的标题输出到_sidebar中
function title2sidebar(){
  cd $1

  # 删除当前目录下的_sidebar文件
  rm -f _sidebar.md
  # 判断是否有文件
  for file in $(ls | grep .md | grep -v _sidebar.md | sort -V)
  do
    now_dir=$(pwd)
    note_title="[$(echo $file | awk -F . '{if($2 == "md") print $1; else print $2}')](${now_dir#$CURRENT_DIR}/$file)"
    echo "* $note_title" >> _sidebar.md
  done

  cd ..
}

# 目录下的所有文件夹
function read_dir() {
  # 进入需要遍历的文件夹中
  cd $1
  # 遍历文件夹内的文件夹
  for folder in $(ls -l | awk '/^d/ {print $NF}')
  do
    # 将笔记的标题输出到_sidebar中
    title2sidebar $folder
    # 判断文件夹里是否还有文件夹
    if [ "$(ls -l $folder | awk '/^d/ {print $NF}')" ]; then
      read_dir $folder
      cd ..
    fi
  done
}

# ---- 脚本开始执行 ----

read_dir ./

